package config

type RoutesConfig struct {
	RoutesConfig     []RouteConfig     `yaml:"routes,flow"`
	ConnectorsConfig []ConnectorConfig `yaml:"connectors,flow"`
	InboundsConfig   []InboundConfig   `yaml:"inbounds,flow"`
	OutboundsConfig  []OutboundConfig  `yaml:"outbounds,flow"`
}

type RouteConfig struct {
	Id              string          `yaml:"id"`
	ConnectorConfig ConnectorConfig `yaml:"connector"`
	InboundConfig   InboundConfig   `yaml:"inbound"`
	HandlersConfig  []HandlerConfig `yaml:"handlers,flow"`
	OutboundConfig  OutboundConfig  `yaml:"outbound"`
}

type ConnectorConfig struct {
	Id   string `yaml:"id"`
	Name string `yaml:"name"`
	Args Args   `yaml:"args,flow"`
}

type InboundConfig struct {
	Id   string `yaml:"id"`
	Name string `yaml:"name"`
	Args Args   `yaml:"args,flow"`
}

type OutboundConfig struct {
	Id   string `yaml:"id"`
	Name string `yaml:"name"`
	Args Args   `yaml:"args,flow"`
}

type HandlerConfig struct {
	Id   string `yaml:"id"`
	Name string `yaml:"name"`
	Args Args   `yaml:"args,flow"`
}
